package com.example.dbsample.service;

import com.example.dbsample.model.entity.SysOrgEntity;
import com.example.dbsample.model.vo.SysOrgVo;

import java.util.HashMap;
import java.util.Map;

/**
 * 机构管理;(sys_org)表服务接口
 * @author : http://www.chiner.pro
 * @date : 2024-5-4
 */
public interface SysOrgService {
    /** 
     * 通过ID查询单条数据 
     *
     * @param id 主键
     * @return 实例对象
     */
    SysOrgEntity queryById(Integer id);

    SysOrgVo queryByIdTarget2Source(Integer id);

    // default、调用：putIfAllNotNull
    default boolean save(SysOrgVo sysOrgVo) {
        Map<String, String> variables = new HashMap<>();
        this.putIfAllNotNull(variables, "name", sysOrgVo.getName());
        this.putIfAllNotNull(variables, "id", sysOrgVo.getId().toString());
        this.putIfAllNotNull(variables, "createdTime", sysOrgVo.getCreateTime().toString());
        return true;
    }

    // 留意default修饰符、putIfAllNotNull
    default void putIfAllNotNull(Map<String, String> map, String key, String value) {
        if(map == null || key == null || value == null){
            return ;
        }
        map.put(key, value);
    }

    /**
     * 分页查询
     *
     * @param sysOrg 筛选条件
     * @param pageRequest 分页对象
     * @return 查询结果
     */
    //Page<SysOrgEntity> paginQuery(SysOrgEntity sysOrg, PageRequest pageRequest);
    ///**
    // * 新增数据
    // *
    // * @param sysOrg 实例对象
    // * @return 实例对象
    // */
    //SysOrgEntity insert(SysOrgEntity sysOrg);
    ///**
    // * 更新数据
    // *
    // * @param sysOrg 实例对象
    // * @return 实例对象
    // */
    //SysOrgEntity update(SysOrgEntity sysOrg);
    ///**
    // * 通过主键删除数据
    // *
    // * @param id 主键
    // * @return 是否成功
    // */
    //boolean deleteById(Integer id);
}